package graphe;
import java.util.ListIterator;

import entrepot.Emplacement;


public class Arc {

	Noeud noeudOrigine;
	  Noeud noeudExtremite;
	
	   public Arc(Noeud NoeudOrigine, Noeud NoeudExtremite, Graphe graphe){

	    // recherche noeud origine par son nom
	 /*   ListIterator<Noeud> liNoeuds = graphe.listeNoeuds.listIterator();
	    Boolean trouveOrigine = false;
	    while (liNoeuds.hasNext()&&!trouveOrigine) {
	       Noeud noeudCourant = liNoeuds.next();
	       if (NoeudOrigine.equals(noeudCourant)){
	        noeudOrigine = noeudCourant;
	        trouveOrigine = true;
	       }
	    }
	    // recherche noeud extremite par son nom
	    liNoeuds = graphe.listeNoeuds.listIterator();
	    Boolean trouveExtremite = false;
	    while (liNoeuds.hasNext()&&!trouveExtremite) {
	       Noeud noeudCourant = liNoeuds.next();
	       if (NoeudExtremite.equals(noeudCourant)){
	        noeudExtremite = noeudCourant;
	        trouveExtremite = true;
	       }        
	    }
	    if (trouveOrigine && trouveExtremite) {
	       graphe.listeArcs.add(this);
	    } else {
	       // message d'erreur
	       StringBuffer erreur = new StringBuffer("Erreur arc: ("+NoeudOrigine
	           +" -> "+NoeudExtremite+")\n   ");
	       if (!trouveOrigine ) erreur.append(NoeudOrigine + "? ");
	       if (!trouveExtremite ) erreur.append(NoeudExtremite + "? ");
	       System.out.println(erreur);
	    }*/
		   this.noeudOrigine= NoeudOrigine;
		   this.noeudExtremite=NoeudExtremite;
		   graphe.listeArcs.add(this);

	   }
	   public Noeud getNoeudOrigine() {
		    return noeudOrigine;
		   }

		 
		   public Noeud getNoeudExtremite() {
		    return noeudExtremite;
		   }

	   public String toString(){
	    return new String("   arc: ( "
	        + this.getNoeudOrigine().getEmplacement()
	        + " -> "
	        + this.getNoeudExtremite().getEmplacement()
	        + " )"
	    );
	   }

}
